import Vue from 'vue'
import Vuex from 'vuex'
import user from './modules/user'

Vue.use(Vuex)

export default new Vuex.Store({
  state: { // 负责公共的状态
    test: '测试'
  },
  getters: { // 负责计算属性
    testStr: state => state.test + ',vuexNIUBI'
  },
  mutations: { // 唯一改变数据的方式就是显示的提交mutations
    changeTest (state, payload) {
      state.test = payload
    }
  },
  actions: { // 用户发起的行为，一般用来处理异步操作, 也可以处理同步
    changeTestAction (context) { // context 代表上下文对象， 可以理解为this， 但不是this
      context.commit('changeTest', 'NB')
    }
  },
  modules: { // 根据业务划分的模块
    user
  }
})
